package maquina.modelol.elector;

import java.util.List;

public class Categoria {
	
	private List<Candidato> candidatos;
	
	private Modalidad modalidad;
	
	private String nombre;
	
	public Categoria(String nombre, List<Candidato> candidatos){
		
		if(nombre != null && candidatos != null){
		
			this.nombre = nombre;
		
			this.modalidad = new ModalidadSimple();
		
			this.candidatos = candidatos;
		}
		else{
			
			throw new NullPointerException("Parametros del contructor no pueden ser null");
		}
	}
	
	public Categoria setModalidad(Modalidad modalidad){
		
		if( modalidad != null){
			
			this.modalidad = modalidad;
			
			return this;
		}
		else{
			throw new NullPointerException("Modalidad no puede ser null");
		}
	}
	
	public Modalidad getModalidad(){
		
		return modalidad;
	}

	public String getNombre(){
		
		return nombre;
	}
	
	public List<Candidato> getCandidatos(){
		
		return candidatos;
	}
	
	public String toString(){
		
		return getNombre();
	}

	public Candidato getCandidato(String nombre) {

		Candidato candidato = null;
		
		int i = 0;
		
		while ( i < candidatos.size() && candidato == null){
			
			if(candidatos.get(i).getNombre().equals(nombre)){
				
				candidato = candidatos.get(i);
			}
			else {
				i++;
			}
		}
		
		if(candidato != null){
		
			return candidato;
		}
		else{
			throw new IllegalArgumentException("Candidato no valido");
		}
	}
}
